function add(a,b)
  local sum=0 ---和
  local carry=0 ---进位值
  while(b~=0) do
   sum=(a~b) --异或=相加
   carry=(a&b)<<1 --按位与之后右移，得出进位值
   a=sum
   b=carry
  end
 return a
end